Method for authorizing limited programming distribution

ABSTRACT

A method and system are provided for distributing programming. A first set of program segments is transmitted according to a schedule of programming. A second set of program segments is stored on a server, with at least one of the first set of program segments having a counterpart in the second set of program segments. User authorizations to program segments on the server are maintained. Such user authorizations may include a record of the number of times a user has previously been given program control over a particular program segment from the server and a limit on the number of times the user is authorized to have program control over the particular program segment from the server. A request from the user for program control over the particular program segment is detected and a determination is made whether to grant program control over that program segment in accordance with the user authorizations.

This application claims the benefit of U.S. Provisional Application No.60/159,202 filed on Oct. 13, 1999; U.S. Provisional Application No.60/159,469 filed on Oct. 13, 1999; and U.S. Provisional Application No.60/163,324 filed on Nov. 3, 1999.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is being filed concurrently with related U.S. patentapplications: Ser. No. 09/687,142, entitled “VIDEO ON DEMAND SWITCHINGSYSTEM”; Ser. No. 09/687,151, entitled “PRE-STORING A PORTION OF APROGRAM TO ALLOW USER CONTROL OF PLAYBACK”; Ser. No. 09/687,138,entitled “LOCAL NEAR VIDEO ON DEMAND STORAGE”; Ser. No. 09/687,157,entitled “LOCAL STORAGE OF LINEARLY SCHEDULED PROGRAMS”; Ser. No.09/687,149, entitled “PROGRAMMING DISTRIBUTION SYSTEM”; Ser. No.09/687,148, entitled “PROGRAMMING DISTRIBUTION AND NOTIFICATION SYSTEM”;Ser. No. 09/687,139, entitled “METHOD FOR PROVIDING PROGRAMMINGDISTRIBUTION”; and Ser. No. 09/687,877, entitled “MULTIPLEXED DIGITALCHANNEL STORAGE”; all of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

This invention relates in general to content delivery and, morespecifically, to delivering a program to an individual business or aresidence.

Content is delivered by satellite, microwave, UHF, VHF, or cable to theset top boxes of users in a number of different ways. Most content isavailable according to a linear schedule published in programmingguides. Certain additional services are available with some of thesedelivery systems, for example, pay per view (PPV), video on demand (VOD)and near video on demand (NVOD). PPV allows a user to purchase the rightto play a program according to a linear schedule. VOD provides theability to view a program at any time with control of the playback bythe user. NVOD is a hybrid approach where a program is available on anumber of channels in a linear program with staggered start times, butthe user cannot control playback.

PPV, VOD and NVOD store the content remote from the user for delivery ona dedicated or shared channel. PPV and NVOD are broadcast according to alinear schedule and multiple users share that single channel. Becausethe single channel is shared, no user can control the playback of thecontent. In contrast, VOD is singlecasted on a dedicated channelavailable to a single user, which allows control of the playback. Forexample, a user can start, stop, rewind, fast forward, or pause a VODprogram.

SUMMARY OF THE INVENTION

The invention relates to delivering a program to an individual businessor residence. In one embodiment, a method and system are provided fordistributing programming. A first set of program segments is transmittedaccording to a schedule of programming. A second set of program segmentsis stored on a server, with at least one of the first set of programsegments having a counterpart in the second set of program segments.User authorizations to program segments on the server are maintained.Such user authorizations may include a record of the number of times auser has previously been given program control over a particular programsegment from the server and a limit on the number of times the user isauthorized to have program control over the particular program segmentfrom the server. A request from the user for program control over theparticular program segment is detected and a determination is madewhether to grant program control over that program segment in accordancewith the user authorizations.

In another embodiment, a first set of program segments is transmittedaccording to a schedule of programming. A second set of program segmentsis stored on a server, with at least one of the first set of programsegments having a counterpart in the second set of program segments. Thenumber of times that a user has previously been given program controlover program segments from the server and a limit on the number of timesthe user is authorized to have program control over program segmentsfrom the server are recorded. A request from the user for programcontrol of a particular program segment is detected, and a determinationwhether to grant program control over that program segment is made bycomparing the number of times the user has previously been given programcontrol over program segments from the server and the limit on thenumber of times the user is authorized to have program control overprogram segments from the server.

Reference to the remaining portions of the specification, including thedrawings and claims, will realize other features and advantages of thepresent invention. Further features and advantages of the presentinvention, as well as the structure and operation of various embodimentsof the present invention, are described in detail below with respect tothe accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram that shows an embodiment of a program deliverysystem;

FIG. 2 is a block diagram illustrating another embodiment of a programdelivery system that remotely locates an additional content provideraway from a cable provider;

FIG. 3 is a block diagram depicting one embodiment of a program deliverysystem that wirelessly passes content from a cable television providerto a transmission system;

FIG. 4 is a block diagram showing an embodiment of a program deliverysystem that uses a satellite based transmission system;

FIG. 5 is a block diagram illustrating an embodiment of a set top boxthat includes a control channel;

FIG. 6 is a block diagram illustrating another embodiment of a set topbox that has content storage capability;

FIG. 7 is a flow diagram which shows a process for either retrievingreal-time programs or previously stored programs;

FIG. 7A is a flow diagram showing the interaction of a notificationfeature with the retrieval of real-time programs or previously storedprograms;

FIG. 7B is a flow diagram showing one embodiment for retrieving apreviously stored program;

FIG. 7C is a flow diagram showing another embodiment for retrieving apreviously stored program;

FIG. 7D is a flow diagram showing a further embodiment for retrieving apreviously stored program;

FIG. 8A is a flow diagram which illustrates a process for selecting apreviously stored program;

FIG. 8B is a block diagram illustrating one embodiment for coupling anotification feature with a menu-based embodiment;

FIG. 9A is a block diagram that shows an embodiment of a viewing of aparticular near video on demand (NVOD) program;

FIG. 9B is a block diagram that shows another embodiment of a viewing ofa program gathered from a number channels;

FIG. 9C is a block diagram that shows yet another embodiment of aviewing of a program gathered from a number of channels;

FIG. 10A is a flow diagram that shows the steps in showing a NVOD wherethe user controls playback;

FIG. 10B is a flow diagram that shows a process for pre-storing a clubprogram local to the user;

FIG. 11 is a block diagram depicting another embodiment of a set top boxthat records a number of programs simultaneously;

FIG. 12A is a block diagram showing yet another embodiment of a set topbox that records programs on several different carrier channels;

FIG. 12B is a block diagram showing still another embodiment of a settop box that records several different carrier channels in theirentirety;

FIG. 13A is a block diagram illustrating an embodiment of a programreceiver that produces multiple digital channels simultaneously;

FIG. 13B is a block diagram illustrating another embodiment of a programreceiver that also produces multiple digital channels simultaneously;

FIG. 14 is a block diagram showing an embodiment of a program serverthat uses buffers to store multiple digital channels simultaneously;

FIG. 15 is a block diagram illustrating another embodiment of a programserver that uses statistical multiplexing to combine a number of digitalchannels; and

FIG. 16 is a block diagram showing yet another embodiment of a programserver that uses a mass storage device that can store multiple digitalchannels at one time.

DESCRIPTION OF THE SPECIFIC EMBODIMENTS

The present invention provides a method for authorizing limitedprogramming distribution. A can watch certain programs with control overplayback. Through use of a remote control, for example, the user canrewind, fast forward or pause playback of the linearly scheduledprogram. The controlled playback may be provided from the beginning ofthe program or from an intermediate point in the program.

In one embodiment, an additional content provider allows users to view apredetermined linear schedule of programming on their television. Thelinear schedule of programming provided to the user can be watched inreal-time, i.e., as the program is broadcast. In this embodiment, asubset of the users who subscribe to the additional content may alsosubscribe to an additional level of benefits, hereinafter called the“club.” The club members can also access a subset of or all of thelinearly scheduled content at any time. The club members can rewind,fast-forward or pause playback of this content with their remotecontrols.

In the Figures, similar components and/or features may have the samereference label. Further, various components of the same type may bedistinguished by following the reference label by a dash and a secondlabel that distinguishes among the similar components. If only the firstreference label is used in the specification, the description isapplicable to any one of the similar components having the same firstreference label irrespective of the second reference label.

FIG. 1 shows a block diagram of one embodiment of the program deliverysystem 100. The program delivery system 100 includes a transmissionsystem 108, set top boxes 120, a subscriber management system 124, asubscriber server 128, a program server 132, a program request database136, and a satellite dish 116. The program server 132 and the programrequest database 136 are part of a system of an additional contentprovider. The additional content provider system interfaces with theother components that are part of a system of a cable televisionprovider.

The subscriber management system 124 contains account information forall users such as customer names, addresses, set top box addresses,credit history, subscription status, and video on demand (VOD) status.This information is used to enable programs on the set top box(es) 120of each user. Interactive screens for selecting services are formulatedby the subscriber management system 124. The screens allow the user toselect additional products or services. From the satellite dish 116, thesubscriber management system 124 receives program information relatingto any downloaded programs or real-time programs that are made availableto the program delivery system 100.

The subscriber server 128 stores content that is provided to thetransmission system 108 for distribution to the set top boxes 120.Programs are stored in compressed digital form. Preferably, MPEG-2compression is used, although, other embodiments could use differentalgorithms such as MPEG-4. The programs are downloaded from thesatellite dish 116 for later broadcast or are provided on removablestorage media such as tapes or disks. Additionally, real-time content isprovided to the subscriber server 128 for immediate broadcast fromsources such as the satellite dish 116 or a broadcast televisionantenna.

The cable television provider interacts with the systems of additionalcontent providers in order to supply additional programs to users. Thisadditional content could include commercial supported channels,commercial-free channels, home shopping, interactive services,pay-per-view, video-on-demand, or near video-on-demand. In thisembodiment, a program request database 136 and program server 132respectively provide additional information to the cable televisionprovider for billing, for example, and content to the cable televisionprovider for broadcast to specific set top boxes 120. An interfacestandard or custom software allows interaction between the systems ofthe additional content provider and the cable television provider.Interaction between the systems allows communicating program, billingand other information.

The subscriber management system 124 interacts with the program requestdatabase 136 in order to provide program entitlement to users. Theprogram request database 136 stores user specific information, clubspecific information and programming information. The user specificinformation includes such things as name, address, set top box address,membership privileges, membership history, and available credit. Theclub specific information includes such things as program listings anddescriptions; coming attractions, premieres and specials; a membershiphistory summary; and program usage by class of program. For real-timebroadcasts, the programming information includes such things asschedules, program descriptions and upcoming specials.

The user specific information, club specific information and programminginformation are available to the subscriber management system 124 foraccounting purposes and for formulating the menu screens presented tothe user. For example, the user may want to know their account balanceor the number of times certain classes of programs were viewed.Additionally, some embodiments can limit the amount of times a user canreplay a program during a defined period or number of uses in a period.This usage information is stored in the program request database 136 andused by the subscriber management system 124 before entitling a set topbox 120 to watch a program.

The program server 132 stores programs associated with an additionalcontent provider. The subscriber management system 124 checks with theprogram request database 136 to determine if a program is available. Theprogram server 132 can load the programs onto the subscriber server 128or directly couple the program to the transmission system 108.Accordingly, the subscriber management system 124 uses the informationfrom program request database 136 in order to entitle the program forthe users.

The transmission system 108 takes the various programs and multiplexesthem onto a conduit coupled to the set top boxes 120. Typically,frequency division multiplexing techniques are used in order to transmitthe various program streams onto a single coaxial cable, an opticalfiber or a combination thereof. The transmission system 108 may includeanalog to digital converters, digital compression hardware, multiplexersand other items in order to make the best use of the availablebandwidth. The subscriber management system 124 controls thetransmission system 108 to route the appropriate program streams to thedesired set top box 120 of the user. Although not shown in the figure, anode can be interposed between the transmission system 108 and the settop box 120 as is well known in the art.

Although the program request database 136 is separate from thesubscriber management system 124 in the above embodiment, someembodiments could combine these functions. Program information could beprovided to the subscriber management system 124 for management fromthere with appropriate software and hardware.

With reference to FIG. 2, another embodiment is shown which separatesthe additional content provider system 204 from the cable televisionprovider system. This embodiment allows the additional content providerto have a central location that could communicate with a number of cabletelevision providers in remote geographical locations. A first andsecond satellite dishes 216, 220 communicate through a satellite 208.The satellite 208 provides bi-directional communication such that thesubscriber management system 124 can interact with the program requestdatabase 136 and the program server 132 can send the program to thesubscriber server 128 or send the program directly to the set top boxes120.

Referring next to FIG. 3, an embodiment of a program delivery system 300is shown which uses a satellite link to receive the program. A satellitetelevision provider uplinks the program with a first satellite dish 304to a satellite 308. A transmission system 108 is coupled to a secondsatellite dish 312 in order to downlink the program. The transmissionsystem 108 converts the signal from the satellites to a formatunderstood by the set top boxes 120. Although not shown in FIG. 3, othersatellites, cables, microwave dishes, and antennas could provide theprogram to the transmission system 108 for distribution to the set topboxes 120.

Control information passes between the subscriber management system 124and the set top boxes 120 by way of either a POTS network 316 or acontrol data channel to each set top box 120. Data is sent to the settop box 120 by way of the control data channel, and data is receivedfrom the POTS network 316. Rather than reporting usage in nearreal-time, the POTS network 316 operates in a “store and forward” modewhere the set top box 120 reports usage according to a predeterminedschedule such as the middle of every night. Alternatively, thesubscriber management system 124 could periodically query the set topboxes 120 through the POTS network 316.

With reference to FIG. 4, another embodiment of a program deliverysystem 400 is shown which places the transmission system 108 in asatellite 408. Although only one satellite television provider is shown,multiple satellite television providers could uplink to the satellite408. A transmission system in the satellite 408 combines programs from anumber of content providers and downlinks the combined signal tosatellite dishes 412 for each user. The set top boxes 120 decode thedownlinked signal.

A modem transceiver in each set top box 120 communicates over a POTSnetwork 416 to the subscriber management system 124 in order to provideentitlement and other information. This embodiment uses the POTS networkfor bi-directional communication in near real-time. Once a program thatrequires special authorization is requested, the subscriber managementsystem 124 is queried for entitlement. In contrast, other embodimentscould use broadband packet switched networks for this communication suchas the Internet.

Referring next to FIG. 5, an embodiment of a set top box 120 is depictedin block diagram form. The set top box 120 recovers a digital channeland presents the digital channel to the television on a display channelselected by the user. The set top box 120 includes a program receiver500, a controller 504, a display interface 524, a control transceiver528, a remote control receiver 532, and a channel display 536. Includedin the program receiver 500 are a tuner 508, a digital channeldemodulator 512, a digital channel select circuit 516, and a decryptionengine 520. The set top box 120 receives programs from the satellitedish 412 that is coupled to the satellite, but other embodiments coulduse other transmission methods. Control information is sent and receivedthrough a plain old telephone system (POTS) network 316 or otherbi-directional channel.

The program receiver 500 selects the desired digital channel from thefrequency division multiplexed signal received from the transmissionsystem 108. A control signal, which corresponds to a particular carrierchannel to be downconverted, is sent from the controller 504 to thetuner 508. The tuner 508 downconverts a selected carrier to anintermediate frequency (IF) carrier. The signal modulating the IFcarrier is converted into a digital baseband signal by the digitaldemodulator 512 whose output is an encrypted MPEG signal. The decryptionengine 520 performs decryption of the digital baseband signal to producea plaintext signal. A key is provided from the controller 504 to enablethis decryption. A number of digital channels are interleaved in theplaintext signal through a process called statistical multiplexing.Under the direction of the controller 504, the desired digital channelis removed from the plaintext signal by the digital channel selectcircuit 516. To allow demuxing the desired digital channel, the programidentifiers (PIDs) unique to each digital channel are monitored. At thispoint, the digital channel is compressed in an MPEG-2 format.

The final step before the program is in a format suitable for display ona television involves decompressing the digital channel in the displayinterface 524. An MGEG-2 decoder in the display interface 524decompresses the digital channel to an NTSC format modulated atfrequency that typically corresponds to channel three or four. Thetelevision is tuned to channel three or four to receive the programcontained in the digital channel. As is well known in the art, thetelevision can also select a composite video or S-video from a compositevideo or S-video input port in order to receive the program from the settop box 120.

The controller 504 oversees the operations of the set top box 120. Thecontroller 504 performs all processing input from a remote control,selecting the carrier channel and digital channel and processing controlinformation. The controller 504 includes a look-up table that maps thedigital channels and their corresponding carrier channels to displaychannels. The user can select a display channel in order to view thecorresponding content of the digital channel on their television. Byusing the look-up table, the controller 504 causes the set top box 120to tune and decode the digital channel selected by the user with theremote control.

When a program is requested by the user, the subscriber managementsystem 124 finds an available transmission pathway and provides thedisplay channel to the user. When ready to begin viewing, the userrequests the display channel with the remote control. The set top boxappropriately tunes and decodes the digital channel which corresponds tothat display channel. In other embodiments, the controller 504 can remapa digital channel to any display channel such as a dedicated clubchannel.

Control information is sent and received by the control transceiver 528through the POTS network 316. For example, the set top box 120 mayrequest a program through a control data channel of the transceiver 528and the subscriber management system 124 may respond with a displaychannel for that program. This transceiver 528 includes a modem thatmodulates data onto the phone line and demodulates data from the phoneline. The controller 504 processes all data sent to and received fromthe control transceiver 528 on the control data channel. Otherembodiments could bi-directionally communicate through a packet switchednetwork, cellular data network, wired control channel, microwave link orother known methods.

During playback of a club program, the user can pause, rewind orfast-forward the program with their remote control. The club program issent to the set top box 120 of the user over a dedicated digitalchannel. The playback commands are sent through the control data channelto the subscriber management system 124 which controls the subscriberserver 128 or program server 132 in order to regulate playback. In thisway, a club program can be played back much like a video or audio tapelocally playing in the VCR or cassette player of the user.

The remote control receiver 532 allows the user to input informationinto the program delivery system 100. Using the remote control, the usersends selections according to menu prompts on the television screen. Thecontroller 504 processes these selections and formulates appropriateprompts after receiving information from the subscriber managementsystem 124. The prompts can be produced by the controller 504 and/or thesubscriber management system 124. These prompts allow the user to selecta club program for playback or to otherwise access their account.

The channel display 536 provides the user with the desired displaychannel. This display 536 could be a LED display, a LCD display or anoverlay displayed on the television screen. The user uses the feedbackfrom the channel display 536 to confirm which display channel iscurrently selected.

Referring next to FIG. 6, an embodiment of the set top box 600 is shownwhich stores some programs locally. This embodiment includes acontroller 612, the receiver 500, the display interface 524, the programserver 132 and the program request database 136. Club programs areperiodically downloaded and stored in the program server 132. Thisembodiment receives programs through a coaxial cable coupled to thetransmission system 108. Additionally, control information is sent andreceived over this cable.

The controller 612 manages the operation of the set top box 600. Digitalchannels are selected by the controller 612 and downloaded to theprogram server 132 for later viewing or sent directly to the displayinterface 524 for real-time viewing. The controller 612 also retrievesuser specific information, club specific information and programminginformation from the program request database 136 in order to entitlethe club programs stored on the program server 132.

A mass storage device, such as a magnetic disk, tape drive, videorecorder, optical disk or the like, in the program server 132 stores thedownloaded programs. Local storage allows pausing, rewinding andfast-forwarding the program with reduced latency. Inexpensive magneticdisks today have eighty gigabytes of data storage which allows roughlythe same amount of hours of video programming storage or fifteen hundredhours of audio programming in the set top box 600. It is to beunderstood, that the storage device in some embodiments may holdinformation other than club related programs.

Control information is sent and received by the control transceiver 608.This transceiver 608 demodulates the incoming control data channel whichhas a carrier typically in the range of 100 MHz and modulates anoutgoing control data channel at a carrier frequency which has a carriertypically at 5–50 MHz. The controller 612 processes all data sent to andreceived from the control transceiver 608 on the control data channel.

The control data channel is broadcast to all set top boxes 120associated with the delivery system 100. In order to avoid other boxes120 acting upon control information addressed to the desired set top box120, control information is addressed for an identification numberunique to the desired set top box 120. Additionally, cryptology could beused upon the control information to provide further security fromunintended boxes 120 decoding the control information.

Referring next to FIG. 7, a flow diagram is shown which demonstrates amethod for either retrieving real-time programs or previously storedprograms. The flow diagram of FIG. 7 incorporates various retrievalembodiments and notification embodiments, as illustrated by the elements“A,” “B,” “C,” and “D,” which are shown individually with greater detailin FIGS. 7A–7D. The real-time programs may be part of a generalsubscription service that includes a fixed schedule of programs playedthroughout a given time period, such as a month.

Control of playback for stored programs is usually available only tothose in the club. Club membership is generally an added service beyondthat available simply from belonging to the subscription service, and istypically more costly to the user than is the subscription servicealone. However, other embodiments could provide the privileges of clubmembership without requiring belonging to the subscription service. Forexample, commercially supported television could have the ability to bepaused, rewound and fast-forwarded instead of a subscription service. Afurther example, discussed in greater detail below, includes providingsamples of the more versatile club service to non-club-members as amarketing strategy.

The process begins with the user turning on the television set and settop box 120 in step 704. If desired, the user selects to view a displaychannel which corresponds to the subscription service in step 708. Toenable this selection, the controller 612 is informed of the user'schoice by the remote control receiver 532. In response, the controller612 refers to the look-up table of channels (i.e., the channel map) andcommands the receiver 500 to process the corresponding digital channel.The digital channel is sent to the display interface 524 fordecompression before being displayed on the television. Coincident withdisplaying the digital channel, the channel display 536 is updated bythe controller 612 to reflect the selected display channel.

At step 712, the subscription program is playing at its previouslyscheduled time for the user. A notification service, shown genericallyas step 760, may be implemented automatically by the system to provideinformation to the user to regarding whether the subscription program isa club program permitting enhanced features for club members.Additionally, the controller 612 monitors for any of a variety ofcommands (shown generically as steps 770, 780, and 790) that may beactivated by the user and which may be used to provide controlledviewing access to a previously stored club program. The stored clubprogram to which controlled access is granted may be the selectioncurrently being shown in step 712 or may be a different club program, asdescribed below.

If the controller detects entry of one of the commands, it determines instep 770, 780, or step 790, as appropriate, whether or not to authorizeplayback control of a club program selection. At step 744, the systemmakes use of that determination either to grant the user playbackcontrol at step 724 or, in some embodiments, to decide whether to showpromotional information at step 746. If a decision is made to show suchinformation, the promotional feature is presented to the user at step748. Such a promotional feature may include information describing theenhanced benefits of club membership, the additional cost of clubmembership, and any other relevant information such as specialpromotional rates.

One particular aspect of the promotional feature may include acomplimentary access to the club benefits that the user attempted toaccess in step 770, 780, or 790. Whether to grant such complimentaryaccess is determined at step 752, and the decision may be made by havingthe subscriber server 128 access information from the subscribermanagement system 124. Examples of information that may be relevant indetermining whether to grant complimentary access, among others, includewhether such complimentary access has ever previously been granted tothe particular user, how long the particular user has been a subscriber,and whether the user is delinquent in any payments.

If the system determines that complimentary access should not begranted, it returns to step 712 where the user remains watching thesubscription channel in real time. In one embodiment, this entireprocess may be completely transparent to the user. From the user'sperspective, his attempt to access a restricted club feature may havehad no effect on the program stream at his television because theprogram he is watching is not a club program or because he is not a clubmember. If, instead, the system determines that complimentary accessshould be granted, it provides the user with playback control of theclub program at step 724. Regardless whether the user is grantedplayback control at step 724 as a complimentary promotional feature oras part of the user's club membership, such control may be providedeither from the beginning of the selected program or from the point inthe program at which a command was entered, depending on the precisedetermination made in step 770, 780, or 790.

Once authorization is approved, an entitlement is sent to the set topbox 120, 600 by the subscriber management system 124 or the controller612. Among other things, the entitlement includes carrier and digitalchannel information corresponding to the club program. The controller612 commands the receiver 500 to recover the digital channel whichcontains the club program and to present that digital channel to theuser. No matter how the user is ultimately granted playback control of aclub program at step 724, the same capabilities are provided by thesystem. At step 724, the user can pause, rewind or fast-forward theprogram just as if it were being played in a VCR of the user. The usercould be given a limited amount of time to view the club program inorder to preserve the resources required for a digital channel dedicatedto that user alone. In other words, in such an embodiment, the user isgiven a predetermined amount of time to view the club program such astwice the length of the program. Beyond the predetermined time, theprogram cannot be restarted.

One aspect of the club notification feature is shown in detail in FIG.7A, which illustrates the functioning of step 760. Variations of such anotification feature, some of which are described below, are also withinthe scope of the invention. The controller 612 generally monitors as theuser moves through different channels, waiting for the user to settle ona particular subscription channel at step 712. Whether the user hassettled on that channel may by determined, for example, at step 761 bythe fact that the user has stayed on that channel for a certain periodof time (e.g., five seconds).

If the user has not just recently accessed the subscription channel, thesystem simply continues to provide that channel to the user in real timeat step 712. However, an identifier may be displayed at step 762 wherethe user has just settled on that channel. At step 762, the identifieris displayed relatively briefly (e.g., 2–6 seconds) so as not tointerfere with viewing the program. In one embodiment, such anidentifier may simply identify that the user is now accessing hissubscription service. In more elaborate embodiments, the identifier mayinclude dynamically generated information indicating, for example, thetitle of the program being shown and the time remaining in the program.In an alternative embodiment, indicated by the dashed line, theidentifier is not displayed at all, the process proceeding insteaddirectly to step 763.

At step 763, a determination is made whether the program being shown onthe accessed subscription channel is a club program. If not, the systemreturns to showing the program at step 712 and removes the identifierafter the appropriate time period. If a club program is being displayed,then a club notification symbol is shown on the identifier at step 764.In the embodiment shown with the dashed line, the club notificationsymbol is shown by itself rather than in conjunction with theidentification symbol. Such a club notification symbol may comprise, forexample, a special icon or alphanumeric string recognizable to a clubmember or other subscriber to denote that the special playback controlis available. In certain embodiments, the same icon that is used inother aspects of the system described below, such as in a programmingguide or in various menu functions, is used. Such consistency reinforcesthe meaning of the notification symbol, serving both to sharpen itsrecognition value and to increase its effectiveness in advertising thespecial club features. Unlike a static icon, the club notificationsymbol is included on a dynamic basis that reflects ongoing changes inthe roster of club programs. The overlaid identifier and notificationsymbol remain displayed for a brief period (e.g., 2–6 seconds), and arethen removed at step 765 so that the user may continue to watch thesubscription channel without distraction at step 712. In certainembodiments, display of the identifier and notification symbol may berepeated periodically, such as at 15-minute intervals.

The controller 612 also monitors at step 766 whether a designatedinformation key is activated by the user. Such an information key isused to bring up information on the screen that describes the programcurrently being shown. Such program information may include, forexample, the title of the program, a brief description of the program,the time of day that the program began, the total time remaining to beshown in the program, a content rating for the program, and a qualityrating for the program. In different embodiments, different combinationsor subsets of such information may be used. In response to activation ofthe designated information key, the controller 612 directs display ofthe program information on the user's television screen at step 767.

At step 768, a determination is made whether the program being shown onthe subscription channel is a club program. If so, a notification symbolis overlaid with the program information at step 769 so that the displayof program information includes such an indication that the playbackcontrol features for that program are available to club members. In oneembodiment, the notification symbol is the same icon that may bedisplayed at step 764 and at other points in the operation of thesystem, thereby reinforcing the interpretation of the icon tosubscribers. Display of the notification symbol is determineddynamically to reflect the fact that the club programs are subject tochange on an ongoing basis. The program information display, includingthe notification symbol, may be removed by the user, through thecontroller 612, by again activating the designated key.

One method for activating user playback control of a club program isshown in FIG. 7B, corresponding generally to step 780. In this instance,the controller 612 monitors in step 782 whether the PLAY key or itsequivalent is activated by the user. The PLAY key is used as a simplesingle-key means for selecting the scheduled program currently showingand accessing the stored club program from its beginning. Such a featureallows a user to respond to seeing a program that is in progress byissuing a demand for immediate access to the entire program.

Activation of the key indicates to the controller 612 that the user hasinitiated a request for access to a club version of the presentsubscription program. Processing of that request proceeds at steps 784and 786 to determine (1) whether the subscription channel is showing aclub program and (2) whether the user is a member of the club andtherefore entitled to access to the previously stored club version.Authorization to access the club version from its beginning is grantedat step 788 only if both conditions are true. Authorization may beobtained by querying the controller 612 in some embodiments, while inother embodiments in may be obtained by querying the subscribermanagement system 124. If either of the conditions is false,authorization is specifically withheld at step 789. Even so, theattempted access has initiated a sequence that may include steps 744,748, and 752 as described above to grant complimentary access to theclub version as a promotional feature. One alternative embodiment isillustrated with the dashed line. Instead of simply withholdingauthorization for playback control where the subscription channel is notshowing a club program, the user is directed to the club channel at step785, thereby proceeding to steps shown in FIG. 7D.

A similar method for acquiring playback control is shown in FIG. 7C,which corresponds generally to step 770. In this method, the userindicates that he wishes to control the program being shown byactivating one of the specific program control keys other than the PLAYkey or its equivalent. Such program control keys include those keys thatwould be used to manipulate the progression of the program if the userhad been granted playback control, such as FAST FORWARD, REWIND, orPAUSE, among other playback controls that may be activated. In certainembodiments, the program control keys may include the ability for theuser to give graduated instructions, requesting that the FAST FORWARD orRE be at a particular rate with respect to the normal propagation speed,such as “2×,” “4×,” etc.

These authorization conditions may be checked by querying the controller612 and/or the subscriber management system 124 in various embodiments.After the controller has detected activation of a program control key, adetermination is made at steps 774 and 776 of (1) whether thesubscription channel is showing a club program and (2) whether the useris a club member. If both conditions are true, playback control of thecorresponding club program is authorized at step 778; if either or bothof the conditions are false, at step 779 such playback control isspecifically not authorized. The lack of such authorization within step770 may be overridden according to step 752, where it may be determinedthat complimentary access to the particular club program should begranted as part of a promotional feature. One alternative embodiment isillustrated with the dashed line. Instead of simply withholdingauthorization for playback control where the subscription channel is notshowing a club program, the user is directed to the club channel at step775, thereby proceeding to steps shown in FIG. 7D.

When authorization is granted at step 778, the controller 612 orsubscriber management system 124 determines the current point ofplayback of the subscription program. This playback time can bedetermined from the MPEG program stream. For example, using the controldata channel, the playback time may be sent to the subscriber managementsystem 124 such that the previously stored on-demand program may bestarted at step 724 at the current playback point. In this way, the clubprogram is substituted for the scheduled program in a manner transparentto the user—the transition from the scheduled program presentation tothe club program appears seamless and with out temporal distortion. Fromthe perspective of the club-member user, he has tuned to a subscriptionchannel, seen a brief notification that the program being displayed, andused his program control keys to control the program as he desires.

There is still a further way in which the user can initiate accessing astored club program and be given playback control over the program,illustrated in FIG. 7D, which corresponds generally to step 790. In step728, the user can select to show a club display menu, which presentsvarious program options through an on-screen menu. Such a club displaymenu may be selected, for example, by activating an appropriate key on aremote control. The menu may be organized according to program genre,alphabetically, or otherwise. At some point, a determination is madewhether the user is a club member in step 792, such as by accessing thesubscriber management system 124. In the embodiment illustrated in thefigure, that determination is made after the user has selected a clubprogram, although it may be performed at other times in differentembodiments. If the user is not a club member, authorization to accessthe club programs is specifically not authorized in step 799, althoughthis may be overridden in step 752 for promotional purposes aspreviously described.

The user is presented with options for selecting a club program in step794. In some embodiments, the menu screen is formulated by thecontroller 612 and sent to the display interface 524. In otherembodiments, the on-screen menu is formulated at the subscribermanagement system 124 and fed to the user over a channel, which may be adigital channel. The same channel that will ultimately play back theclub program can be used. The menu that is presented may include anotification symbol, such as the dynamically generated icon used atother points in the system, to emphasize that the program selectionsoffered are specially designated club programs, the complete list ofwhich may frequently change. At step 796, the user selects one of theclub programs from the menu of options, and the user's authorization tocontrol playback of that program from the beginning of the program isestablished at step 798.

The various embodiments illustrated in FIGS. 7–7D make no particulardistinction where the club programs are stored. Different possibilitiesfor such storage, all within the scope of the invention, are describedin detail above. Briefly, the club programs may be stored remotely, suchas in the subscriber server 128 or in the program server 132, or may bestored locally, such as in the set-top box 600. FIG. 8A is a flowdiagram illustrating a particular embodiment for selecting a locallystored club program in the set-top box 600.

In step 804, the user selects a display of linearly scheduledprogramming. This display is formulated by the controller 612 based uponinformation retrieved from the program request database 136 in step 808.Certain things relating to billing, for example, may be formulated bythe subscriber management system 124 and passed to the controller 612over the control channel. In step 812, the programs are presented to theuser such as in tabular form by channel and scheduled program time. Theset top box 120 formulates the display based upon information previouslyreceived from the control channel. An example of such a display, basedon a linear programming schedule, is presented in FIG. 8B, discussed inmore detail below. Other display configurations may also be used,including organizing material by genre, alphabetically, by rating, orotherwise.

According to step 814, the controller marks those programs that arewithin the club with a notification symbol, such as the icon that isused to designate club programs at various other points in the system.Even in embodiments where the notification symbol takes the form of adisplay icon, it operates differently than do other icons that may alsobe incorporated into the program menu. Such other icons are typicallylimited to static informational designations, indicating, for example,fixed content ratings for each program. This may be accompanied in someinstances by an icon that denotes the existence of a parental-lockfeature based on the fixed content ratings. By contrast, the clubnotification symbol is a dynamic designation that seamlesslyaccommodates the ongoing changes in the roster of club programs. Thus,to include the club notification symbol, the controller 612 consults theprogram request database 136 and/or the subscriber management system124.

In step 816, the user designates one of the presented club programs. Ifnecessary, after obtaining entitlement, the controller 612 enablesplayback of the stored club program from the program server 132 in theset top box 600. The program server 132 stores programs in compresseddigital form and spools the digital program to the display interface 524for decompression and analog conversion. In step 824, the user watchesthe club program with full control of the playback. In differentembodiments, program control is granted from the beginning of theprogram or is granted according to its position within the linearprogramming schedule, such as described with respect to FIGS. 7B and 7Cabove. The program request database 136 is updated with viewinginformation in step 828. Updating the program request database 136allows enforcing viewing rules such as not allowing the user to watchthe same program more than five times.

An example of how an arrangement of programs may appear to the userafter step 814 is shown in schematic fashion in FIG. 8B. The exampleshows a schedule of programs 840 of varying length on seven distinctchannels labeled “Ch. A”—“Ch. G” over a time period from 6:00 to 11:00.The exemplary schedule includes twelve distinct programs 840-1-840-2,repeated and staggered among various of the channels to accommodatedifferent subscriber viewing habits within a fixed schedule. Of thetwelve distinct programs, four (840-2, 840-3, 840-6, and 840-7) in thisexample are within the club and may be accessed with playback control byclub members. Accordingly, at every occurrence of such a club program inthe schedule, a dynamically generated icon 842 is included to identifythe availability of the special club features for those programs.

Referring next to FIG. 9A, the viewing by the user of a near video ondemand (NVOD) program is shown. In this embodiment, a two-hour NVODprogram is distributed in real-time with start times staggered by ahalf-hour. In other words, channels I–IV 928, 932, 936, 940 each displaythe same NVOD program at varying start times. In this way, a user onlyhas to wait a maximum of a half-hour in order to view the next programin the conventional manner. This embodiment improves upon this byallowing the user to begin watching at anytime while enjoying control ofthe playback.

There are four channels 928, 932, 936, 940 that display the NVOD programin this embodiment. In this embodiment, each channel 928, 932, 936, 940displays the program a number of times. For example, channel 1928displays the NVOD program a first time 912-1 at four o'clock, a secondtime 912-2 at six o'clock and a third time 912-3 at eight o'clock.Channel II 932 has start times that are one-half hour after the starttimes of channel 1928.

The user in this example desires to begin watching the NVOD program fromthe beginning at 7:45. The first portion 904 of the NVOD program isstored on the program server 132. This storage occurs the first time theNVOD is played on any of the channels 928, 932, 936, 940. The storagecan be either locally in the set top box 120 or remotely from the settop box 120. Only a minimum amount 904 or thirty minutes in thisembodiment is stored locally until the user expresses a desire to viewthe program and/or control playback. Once the user begins watching, theremainder of the program is retrieved from currently running channels928, 932, 936, 940. In this example, the remaining three-quarters of theprogram 908 is retrieved from the program that began at seven thirty924-3 on channel IV 940. To support playing a part of a program whileother parts are being stored, the program server 132 can both storeprograms to and retrieve programs from the server 132 at the same time.

In this embodiment, one half hour 904 is stored locally. However, otherembodiments could have more or less channels with more or lesspre-storage. The stagger time between program start times is the amountthat is stored before viewing. Stagger time is calculated by dividingthe program length by the number of channels. For example, if theprogram is two-hours and is presented on eight channels, the staggertime is fifteen minutes. Accordingly, fifteen minutes would bepre-stored locally.

The embodiment of FIG. 9A, stores a first portion of the program 904 anddownloads a second portion 908 from NVOD channels 928, 932, 936, 940.Other embodiments could use other delivery mechanisms to receive a firstportion that is stored locally before the program is requested. After arequest by the user, the remaining portions could be downloaded from avariety of methods such as a broadband network connection, a VDSLconnection, and a satellite TV connection. The broadband network couldsend the second portion via a DOCIS modem, a DSL modem, a satellitemodem, a power line modem, a line of sight modem, a wireless modem orother techniques. In other embodiments, both the pre-stored portion andthe remaining portion(s) could be downloaded using methods such as abroadband network connection, a VDSL connection, and a satellite TVconnection.

With reference to FIG. 9B, a block diagram shows another embodiment of aviewing of a program 958 gathered from a number channels 944, 948, 952,956. In this embodiment, four channels 944, 948, 952, 956 repeat theirrespective half-hour segments 960, 964, 968, 972 of the two hour program958. A NVOD service could still be provided from the four channels 944,948, 952, 956 by the set top box 120. Seamlessly, the set top box 120would switch channels every half-hour such that the program 958 appearedon a single display channel.

To provide the program on the viewed channel 942 with control ofplayback, the same four channels 944, 948, 952, 956 are used. At somepoint before the user attempts to view the program 958, the firstportion 960 is stored on a mass storage device in the set top box 120.When a request is made for the program 958, the remaining portions 964,968, 972 are retrieved from their respective channels 948, 952, 956. Theremaining portions 964, 968, 972 are gathered either sequentially or inparallel. The user is allowed to control playback in any of the portionsthat are resident on the set top box 120 even if the whole program 958has not finished downloading.

Although this embodiment, receives the program portions 960, 964, 968,972 from analog or digital channels, other embodiments could receive allor some of the portions 960, 964, 968, 972 from other sources. Forexample, the first portion 960 could be received from a channel, but theremaining portions could be downloaded from a broadband networkconnection. In another example, the first portion 960 could bedownloaded from a broadband network connection and the remainingportions could be received from channels. Further, those skilled in theart will appreciate that any number of channels could be used. The morechannels used the smaller the portion size.

Referring next to FIG. 9C, a block diagram shows yet another embodimentof a viewing of a program 958 gathered from a number of channels 976,980, 984. This embodiment reduces the number of channels necessary totransmit a program by one. The first portion 960 is broadcast once. Allset top boxes 120 in the club record the first portion 960. After thefirst portion is recorded, the remaining portions 964, 968, 972 play onthe reduced number of channels 976, 980, 984. In this way, channel 1976can replace two channels.

It is to be understood that other embodiments could occasionally repeatthe first portion such that resource conflicts and service interruptionswould not prevent storage of the first portion in the set top box. It isto be further understood, that the first portion could be broadcast on achannel that does not later broadcast any remaining portion. The channelcould be used for other purposes after delivery of the first portion.

The above embodiments discuss local storage of the program. Localstorage could be inside the set top box 120. Additionally, local storagecould include a mass storage device that is coupled to the userlocation. For example, a hard drive could be coupled to the set top boxby a firewire interface or a server in the user location could becoupled by a network interface to the set top box. The user locationcould be a residence or a business and the mass storage device could beeither inside or outside the structure of the user location.

With reference to FIG. 10A, a flow diagram depicts a process forallowing viewing of NVOD programs under control by the user. In step1004, a new two hour NVOD program begins on four channels 928, 932, 936,940 with half-hour staggered start times. In step 1008, a half-hourportion 904 of the NVOD program is stored in the program server 132 ofthe set top box 600. In step 1012, the user begins viewing thepreviously stored program 904 from the beginning. In step 1016, the settop box 600 determines the channel 928, 932, 936, 940 that has theremaining portion 908 of the program to allow storage of the remainingportions 908 before the user will need it. In step 1020, the remainingportion 908 of the program is stored on the program server 132.

The embodiment of FIG. 9A and 10A, stores a NVOD program for laterplayback. The remaining portion 908 of the program is retrieved from asingle digital channel. About eight through fourteen compressed digitalchannels can be sent down a single 6 MHz carrier channel. Each digitalchannel, which carries audio and/or video, is differentiated with uniqueprogram identifiers (PIDs). In order to more quickly retrieve the NVODprogram, any of the digital channels that contain information notpresently stored could be downloaded from the carrier channel inparallel. For example, if eight digital channels had the same two-hourprogram playing with start times staggered by fifteen minutes, it wouldonly take fifteen minutes to retrieve the remainder of the NVOD programby retrieving from a number of digital channels simultaneously.

Even if the user has decided not to watch a NVOD program, the programcan be stored for later retrieval. Once the last playtime of a NVODprogram is begun, the remainder of the program is stored in anticipationof the user later wanting to view the program. If the user does not viewthe program in a predetermined amount of time or if storage space isneeded, the program is erased from the program server 132.

Capacity algorithms could be used to conserve space on the programserver 132. For example, a first-in first-out FIFO algorithm could beused to make room for new programs as the program server 132 becomesfull. Additionally, a predetermined amount of free space could bereserved for new programs. Further, the user could be prompted such thatthe user could decide which programs should be retained or removed fromthe server 132.

The user is informed of the programs for which the playback iscontrollable. For example, a NVOD program, which has a previously storedportion, would display an icon overlaid on the television screen or on adisplay. In this way, the user would know when a program can be paused,rewound or fast-forwarded. If the program server 132 is full or if theprogram is otherwise not available for playback manipulation, the iconwould not appear.

Although the above embodiment is discussed in terms of a NVOD cycle,other embodiments could operate differently. For example, the firstportion could be recorded the first time a program is played from a NVODcycle or a broadband network connection. When the user requests to viewthe program, the remaining portions could be downloaded from a NVODcycle or a broadband network connection.

With reference to FIG. 10B, a flow diagram shows a process forpre-storing a club program at a user location. The process begins instep 1050 where a linear schedule is analyzed to determine whichprograms to offer to the club with local playback control. Typically,the desirable programs are offered as club programs. Once the clubprograms are known, this embodiment transfers the whole club program tothe user location.

In step 1054, the club programs are broadcast to the club members. Thebroadcast of this embodiment is over one or more channels. Typically, atime in the middle of the night is used for the broadcast. If the settop box 120 has the capability to record multiple channels at one time,the speed of download can be increased. It is to be understood thatother embodiments could use a broadband network connection to downloadthe club programs.

The club programs are stored locally to the user location in step 1058.For example, a mass storage device associated with a residential user orbusiness user could store the club programs.

In step 1062, the user selects one of the club program for playback. Theprogram can be selected from a menu or selected while watching a clubprogram that is also being played in real time from the linear schedule.The set top box 120 retrieves the clubprogram from the mass storagedevice when the club program is selected for playback. The mass storagedevice is located at the user location, but could be either outside theset top box 120 integral to the set top box 120.

Playback of the club program can be fully controlled by the user in step1066. For example, the user can command the set top box 120 with theremote control to fast forward, rewind, pause the playback. Use of theclub program could be limited in various ways during the month to complywith any contractual requirements of the copyright holder. Additionally,the set top box 120 would automatically erase the club program when awindow defined for its use has expired (or some other condition hastriggered) unless the copyright holder allows indefinite storage.

Referring next to FIG. 11, an embodiment of a set top box 1100 is shownwhich records a number of programs simultaneously. A receiver 1104produces multiple digital channels from a chosen carrier channel. ThePIDs corresponding to digital channels are monitored in a plaintext MPEGsignal in order to demultiplex the plurality of digital channels. Thesedigital channels are coupled to a program server 1108 who stores some orall of the digital channels for later playback through the displayinterface 524. Typically, only a subset of the digital channels areappropriated by the program server 1108 for storage.

In other embodiments, the PIDs could be ignored and all the digitalchannels corresponding to a carrier channel are stored. If the user iswatching a program, a single decryption engine 520 in the set top box120 is needed to decrypt a statistically multiplexed and encrypted MPEGsignal modulated on the carrier channel. Accordingly, the decryptionengine 520 is not available to decrypt another carrier channelcontaining a digital channel meant for storage on the program server1108. To avoid this resource conflict, the statistically multiplexed andencrypted MPEG signal that contains digital channel meant for storage iswritten to the program server 1108 without processing. When laterplayback is desired, the statistically multiplexed and encrypted MPEGsignal is read from the program server 1108, decrypted in the decryptionengine 520, the desired digital channel is demultiplexed and the digitalchannel is decompressed. Finally, the decompressed digital signal isthen formatted for display on the television. If three or more tunerswere available, a number of statistically multiplexed and encrypted MPEGsignals could be recorded at one time. This embodiment avoids the needto decrypt several signals at one time.

With reference to FIG. 12A, a block diagram of another embodiment of aset top box is shown which records programs from several differentcarrier channels simultaneously. In this embodiment, a satellite dish1208 receives a number of carrier channels that are combined throughfrequency division multiplexing. For example, a satellite that the dish1208 receives the carrier channels from could have thirty transponderswhere each transponder corresponds to a carrier channel. Eachtransponder produces a data stream at a rate of twenty-seven megabitsper second where each digital channel generally uses two and a halfmegabits per second. Accordingly, there are approximately ten digitalchannels on each carrier channel.

A number of program receivers 1104 each tune to a different carrierchannel in order to produce a number of digital channels whichcorrespond to their respective carrier channel. The digital channelsfrom each program receiver 1104 are coupled to a select circuit 1212.The select circuit 1212 reduces the number of digital channels to anamount that can be stored by the program server 1204. Once screeneddown, the desired digital channels carrying their club programs arestored in the program server 1204. After storage, the club programs aresent one at a time to the display interface 524 for playing on atelevision or stereo.

With reference to FIG. 12B, a block diagram showing still anotherembodiment of a set top box 1216 that records several different carrierchannels in their entirety is shown. This embodiment tunes to a numberof carrier channels with a number of tuners 508 and demodulates them ina digital demodulator 512. Each digital demodulator 512 produces amulti-channel program stream that includes one or more digital channels.The select circuit 1212 may reduce the number of multi-channel programstreams. A program server 1224 stores the selected multi-channel programstreams.

A multi-channel program stream can be retrieved from the program server.A decryption engine 520 decrypts the multi-channel program stream toproduce a plain text equivalent. A digital channel demultiplexer 1304divides out the digital channels from the plain text multi-channelprogram stream. Another select circuit 1228 chooses the desired digitalchannel for conversion to an analog equivalent in the display interface524.

Although this embodiment selects among a number of multi-channel programstreams, some embodiments could only process a single multi-channelprogram stream. Other embodiments could have multiple decryptionengines, digital channel demultiplexers and select circuits to provide anumber of digital channels from the program server. Some embodimentscould have the cable TV operator control the select circuit such thatthe stored multi-channel program streams are controlled remotely and notby the user.

Referring next to FIG. 13A, a block diagram illustrating an embodimentof a program receiver 1104 which produces multiple digital channelssimultaneously is shown. The tuner 508 downconverts the desired carrierchannel to an IF carrier from the multiple carrier channels frequencymultiplexed together. The digital demodulator 512 converts the datasignal riding upon the IF carrier to a digital baseband signal which isan encrypted MPEG signal. The decryption engine 520 performs decryptionof the digital baseband signal in order to produce a plaintext MPEGsignal. The digital channel demultiplexer 1204 monitors the headers andseparates the digital channels in the plaintext MPEG signal based uponthe PIDs. Each signal from the digital channel demultiplexer 1204corresponds to a different digital channel.

With reference to FIG. 13B, a block diagram illustrating anotherembodiment of a program receiver 1104 is shown. In this embodiment, adigital channel is decrypted in the decryption engine 520 afterselection by the select circuit 1128. In contrast, the wholemulti-channel program stream is decrypted in the embodiment of FIG. 13A.It is to be understood that decryption could be performed on themulti-channel program stream and/or the digital channels containedtherein in various embodiments.

Referring next to FIG. 14, a block diagram of an embodiment of a programserver 1404 is shown which uses buffers 1416 in order to simultaneouslystore multiple digital channels. The program server 1404 includes acontrol circuit 1408, a select circuit 1412, digital channel buffers1416, a multiplexer 1420, and a mass storage device 1424.

The control circuit 1408 receives information from the controller 612 inorder to control operation of the select circuit 1412, buffers 1416,multiplexer 1420 and mass storage device 1424. The control circuit 1408selects the appropriate digital channels 1412, manages the buffers 1416,multiplexes the outputs from the buffers 1416, and manages operation ofthe mass storage device 1424. Various state machines and/ormicroprocessors may be used to implement the functionality of thecontrol circuit 1408.

The select circuit 1412 reduces the number of digital channels receivedto an amount of digital channels which is stored in the program server1404. Only a subset of the digital channels are generally used totransmit club programs. In this embodiment, the select circuit 1412chooses four of the digital channels for archiving in the storage device1424.

A number of buffers 1416, one for each stored digital channel, store thedesired digital channels. Each buffer 1416 receives its selected digitalchannel in serial fashion and stores the program stream until the massstorage device 1424 is ready to receive the program stream. The buffers1416 are first-in-first-out (FIFO) buffers that have various flags tocontrol underflow and overflow. The flags are provided to the controlcircuit 1408 in order to signal possible overflow and under flowsituations.

The multiplexer 1420 routes data from the buffers 1416 to the massstorage device 1424. All the buffer outputs are accepted by themultiplexer 1420, but only one of these is provided to the mass storagedevice 1424 at a time. By sequentially connecting each buffer 1416 tothe mass storage device 1424 the buffers 1416 are drained before theyoverflow. The multiplexer 1420 drains the buffers 1416 according to apredetermined algorithm such as draining the fullest buffer 1424 first.

The digital channels are stored in the mass storage device 1424. Themass storage device 1424 only has a limited amount of storage bandwidth,meaning only a certain amount of data can be streamed to the storagedevice 1424 over time. If the storage device 1424 is not quick enough,the digital channels will provide too much data which will overflow thebuffers 1416. Various embodiments of the mass storage device 1424 couldinclude one or more hard drives, tape drives, optical drives or otherstorage devices. Having multiple hard drives, for example, would allowgreater storage bandwidth because incoming data could be divided amongstthe drives.

With reference to FIG. 15, a block diagram of another embodiment of aprogram server 1504 is depicted which uses statistical multiplexing tocombine a number of digital channels into a single data stream stored ona mass storage device 1520. The control circuit provides control signalsthat select the digital channels, multiplex them together, store them,retrieve them, and select the desired digital channel for viewing.

A select circuit 1512 accepts a number of digital channels and reducesthat number. The reduced number are statistically multiplexed togetherusing PIDs in headers to distinguish the separate digital channelsbefore combining them in a statistically multiplexed data stream. Themass storage device 1520 stores the statistically multiplexed datastream. During playback, the previously stored statistically multiplexeddata stream is fed to a select circuit 1524 that removes the desireddigital channel from the data stream.

Referring next to FIG. 16, a block diagram shows yet another embodimentof a program server 1604 that uses a mass storage device 1616 that canstore multiple digital channels at one time. A select circuit 1612reduces the number of digital channels. The reduced number of digitalchannels are separately coupled to the mass storage device 1616 andsubsequently stored. The control circuit 1608 manages the operation ofthese functions.

The mass storage device 1616 of this embodiment accepts multiple digitalchannels at one time and stores them. Either a single disk drive ormultiple disk drives in the storage device 1616 are used for storing thedigital channels. In the case of a single drive, there could be multipleplatters and corresponding write heads. Each write head could write adifferent digital channel on its respective surface of the platter.Alternatively, a different drive could store each digital channel if anarray of drives were used.

The program servers of FIGS. 14–16 could be located in various places.For example, the program server could be proximate to the contentprovider. Alternatively, the program server could be in a node thatservices many different user locations.

Recording multiple channels allows storage of many programs at one time.Using this feature, club members could download their club programs morequickly. Additionally, off-peak times such at the middle of the nightcould be used to download these programs. Using bandwidth to distributeclub programs at off-peak times reduces the cost of distribution.

In light of the above description, a number of advantages of the presentinvention are readily apparent. Users who are club members can controlplayback of some or all linearly scheduled programs. Additionally, thenewer or more often requested programs are available for viewing at anytime. These features allow users to maximize their flexibility whentelevision viewing is desired.

A number of variations and modifications of the invention can also beused. In different embodiments, the programs sent to the users could bevideo or audio programs. The various embodiments described above usesatellite and cable links to receive programs, however packet switchednetworks such as the Internet could also be used. Additionally, thecontrol data channel could also use the Internet to communicate betweenthe set top box and subscriber management system.

Some of the above embodiments discuss the present invention in terms ofadditional or premium content providers. In other embodiments thepresent invention could be applied to true video-on-demand services,near video on demand services, pay-per-view services, home shoppingchannels, commercial supported channels, or other television programmingoptions. The user could simply pause, rewind or fast-forward any programon television on TV to switch to a prerecorded version which the usercould control playback. Alternatively, the user could go to a menu andget access to prerecorded programs for any channel.

The above embodiments store content either remotely or locally. Localstorage is provided within a set top box. However, other embodimentscould store locally in a number of ways. The storage device could be avideo cassette recorder, a digital tape recorder, a hard drive, solidstate storage, an optical drive, or other known storage mechanisms. Thestorage media could be removable or non-removable. The storage devicecould be external to the set top box and coupled thereto with adedicated cable, wireless transceiver, and/or packet switched network.

Some of the above embodiments are discussed in the context of cabletelevision systems, but other content providing techniques could beused. As discussed above, digital satellite broadcast could be used.Additionally, wireless, telephone or power line content distributionusing digital or analog signals could also be used in addition to otherbroadband distribution techniques.

Although some of the embodiments discuss a set top box separate from atelevision display, it is to be understood other embodiments couldinclude the set top box functionality as part of another component. Forexample, the set top box could be integrated into the television set.

Also, although some of the embodiments discuss the use of a remotecontrol for activating certain functions, it is to be understood thatother embodiments may include alternative methods for activating thosefunctions. For example, voice activation, among other alternatives, maybe used for such activation.

In one embodiment of the invention, access to club programs by clubmembers is unlimited, in the specific sense that access to club programsmay be acquired at any time by any club member. In other embodiments,access to club programs, even to club members, may be restricted. Forexample, within a certain period of time (such as a month), a numericallimit may be imposed on the number of times that a particular clubprogram is accessed or viewed by a club member. As used herein, adistinction is made between accessing a club program and viewing a clubprogram. Accessing a club program refers to any retrieval of the clubprogram for any period of time, no matter how brief. Viewing a clubprogram instead refers to retrieval of the club program for at least aspecific length of time and within a certain timeframe. For example, a“view” may be defined as retrieval of a club program for longer thanfive minutes within a 24-hour period. Thus, with such a definition, auser who retrieves a particular club program at, say, seven distincttimes on a given day for only four minutes at a time has accessed thatclub program seven times but not viewed it at all. Similarly, a user whoretrieves and watches that club program in its entirety seven times on agiven day has accessed that club program seven times but viewed it onlyonce.

More complex club arrangements may have different limitations fordifferent club programs: on a completely individual basis, according tosome grouping of the club programs, or as a hybrid between individualand grouped assignments. The inclusion of such limits may allow the clubprograms to be provided in accordance with contractual arrangements withtheir copyright holders when such contractual arrangements restrict thenumber of times that a given program may be accessed or viewed. Theeffect of such limits is incorporated within the process for accessingclub programs as described above, for example in the context of FIGS.7–8B. Among other steps, an attempt to access a club program by a userinitiates a determination of which program may currently be showing tothe user as part of a linear programming schedule, whether that programis available as a club program, and whether the user is authorized toview that club program.

Thus, in one embodiment, each of the club programs is assigned a fixedaccess or view limit, which is stored by the subscriber managementsystem 124 and/or the program request database 136. Certain embodimentsinclude the assignment of a very large limit so that the club member iseffectively given unlimited access to those particular club programswith that large limit. In other embodiments, the limit is set equal tothe number of times the particular club programs appear in the regularfixed schedule. The subscriber management system additionally recordsthe number of times that the club program has been accessed from aparticular set-top box 120. When a club member attempts to access a clubprogram, a comparison is made by the subscriber management system 124between the number of accesses or viewings that have been recordedagainst the authorized number. If the prescribed limit has been reached,access is denied; conversely, if the prescribed limit has not beenreached, access is granted.

In another embodiment, the access or view limit is assigned within thesubscriber management system 124 according to grouping categorizations.Such categorizations may be based, for example, on subject genre,content rating, or quality rating, among other criteria. Thus, forexample, in one embodiment, all club programs that are directedspecifically at children may be given the very large limit value so thataccess to such children's programming is unlimited for club members. Inhybrid embodiments, the access or view limit is assigned according togrouping categorizations for some of the club programs and assigned onan individual basis for other club programs. In still a furtherembodiment, the access or view limit is applied globally to all of theclub programs, thereby acting so that the number of accesses or views ofclub programs is absolutely limited.

Various of these embodiments may be combined as different levels ofservice within the club, having different costs to the club members. Inthis way, the fee that a club member pays to access the club programsmay be graduated according to the level of access that is provided. Theinformation relating to the particular access each club member isafforded is recorded within the subscriber management system 124 for useas described above when a user attempts to access one of the clubprograms. This information may additionally be used to augment theservice on a VOD-type basis in those cases where the user wishes toaccess a specific club program exceeding the scope of his service. Insuch instances, the additional access requested by the user may beprovided while including a surcharge.

For example, if the user has an arrangement that provides access to 10views of club programs within a given month, but wishes to view aneleventh club program in that month, he may provided the additionalaccess by agreeing pay the surcharge. Such additional access is providedafter the subscriber management system 124 verifies that the user hasreached the limit of his arrangement and presents the user withinformation describing the additional cost imposed for the supplementaryaccess.

Limits may also be used in other embodiments in order to implementpromotional features. For example, where a user has met certainpredetermined criteria, such as maintaining a club-access arrangementfor a certain period of time, the limits may be adjusted by thesubscriber management system 124 to provide additional access to certainclub programs as a bonus. Thus, if a user has met predetermined criteriato quality for, say, a bonus of unlimited access to music videos, thesubscriber management system 124 increases the limit for music videosfor that user to a very large value for a period of time called thebonus period. During the bonus period, the user may then access or viewall club programs categorized as music videos whenever and as frequentlyas he wishes.

There are different ways in which the limits may be implemented indifferent embodiments. In one embodiment, the subscriber managementsystem 124 associates one or more set-top boxes 120 with a club-accessarrangement. This may be appropriate, for example, where a singlehousehold or business has multiple set-top boxes 120 for multipletelevisions. The subscriber management system 124 associates each ofthose set-top boxes 120 with a particular limit scheme, whether thatlimit scheme be based on individual limit assignments, groupcategorizations, hybrid arrangements, or otherwise. An access or view isrecorded whenever a club program is accessed or viewed from any of themultiple set-top boxes 120 associated with that arrangement. In thisway, for example, access to club programs may be provided to householdshaving multiple set-top boxes 120 on the same basis as provided tohouseholds having only a single set-top box 120.

In still other embodiments, the user may be given an option to purchasea copy of a club program permanently. When such a purchase arrangementis permitted by the copyright holder, upon agreement to pay a purchasefee, the subscriber management system 124 authorizes the user to retaina permanent copy. Accordingly, the user may copy a club version of theclub program onto another device, such as a PVR, VCR, orremovable media,or may copy it by transmitting electronically such as by email, orotherwise. Alternatively, in embodiments where the club program isalready stored at the user's set-top box 120, the subscriber managementsystem 124 may direct the user's set-top box 120 to retain the copy ofthe purchased club program permanently.

In some of the above embodiments, the content provider selects theprograms that are stored at the user location as part of the club. Thisprocess could be refined in other embodiments such that only some of theclub programs are stored based upon the user's preferences. For example,the user could specify interesting categories or genres and only thoseclub programs would be recorded. Without specifying preferences by theuser, the viewing habits could be monitored in another embodiment. Aprofile of the user would be used to determine what club programs shouldbe recorded. The user could be actively queried to create this profileor could be passively monitored to create this profile. The profilingcould take into account that multiple viewers may be associated with auser location and programs should be recorded according to a compositeprofile for the multiple viewers.

The foregoing description of the invention has been presented for thepurposes of illustration and description and is not intended to limitthe invention. Variations and modifications commensurate with the abovedescription, together with the skill or knowledge of the relevant art,are within the scope of the present invention. The embodiments describedherein are further intended to explain the best mode known forpracticing the invention and to enable those skilled in the art toutilize the invention in such best mode or other embodiments, with thevarious modifications that may be required by the particular applicationor use of the invention. It is intended that the appended claims beconstrued to include alternative embodiments to the extent permitted bythe prior art.

1. A method for distributing programming, the method comprising:transmitting a first set of program segments according to a schedule ofprogramming; storing a second set of program segments on a server, atleast one of the first set of program segments having a counterpart inthe second set of program segments; maintaining user authorizations toprogram segments on the server, wherein the user authorizations include:a record of the number of times a user has previously been given programcontrol over a particular program segment from the server; and a limiton the number of times the user is authorized to have program controlover the particular program segment from the server; detecting a requestfrom the user for program control of the particular program segment; anddetermining whether to grant program control over the particular programsegment to the user in accordance with the user authorizations.
 2. Themethod according to claim 1 wherein the number of times a user haspreviously been given program control over a particular program segmentfrom the server and the number of times the user is authorized to haveprogram control over the particular program segment from the server aredetermined according to access of the particular program segment fromthe server.
 3. The method according to claim 1 wherein the number oftimes a user has previously been given program control over a particularprogram segment from the server and the number of times the user isauthorized to have program control over the particular program segmentfrom the server are determined according to viewing of the particularprogram segment from the server.
 4. The method according to claim 1wherein the limit on the number of times the user is authorized to haveprogram control over the particular program segment from the server isdetermined individually for the particular program segment.
 5. Themethod according to claim 1 wherein the limit on the number of times theuser is authorized to have program control over the particular programsegment from the server is determined according to a categorization ofthe particular program segment within a group of program segments. 6.The method according to claim 1 wherein the limit on the number of timesthe user is authorized to have program control over the particularprogram segment from the server is equal to the number of times theparticular program segment is transmitted according to the schedule ofprogramming.
 7. The method according to claim 1 wherein the limit on thenumber of times the user is authorized to have program in control overthe particular program segment from the server is sufficiently largethat the user is substantially authorized to have unlimited access tothe particular program segment from the server.
 8. The method accordingto claim 1 further comprising providing a plurality of program-controlschemes for selection by the user, wherein maintaining the userauthorizations to program segments on a server comprises establishingthe limit on the number of times the user is authorized to have programcontrol over the particular program segment from the server inaccordance with a program-control scheme selected by the user.
 9. Themethod according to claim 8 further comprising changing theprogram-control scheme selected by the user.
 10. The method according toclaim 8 wherein determining whether to grant program control over theparticular program segment to the user further comprises detecting arequest from the user to change the program-control scheme selected bythe user in exchange for authorization by the user to pay for suchchange, and wherein maintaining the user authorizations to programsegments on the server comprises changing the limit on the number oftimes the user is authorized to have program control over the particularprogram segment from the server in accordance with the changedprogram-control scheme.
 11. The method according to claim 1 wherein, ifthe number of times the user has previously been given program controlover a particular program segment from the server is greater than orequal to the limit on the number times the user is authorized to haveprogram control over the particular program segment from the server,determining whether to grant program control over the particular programsegment to the user comprises transmitting a menu of options.
 12. Themethod according to claim 11 wherein determining whether to grantprogram control over the particular program segment to the user furthercomprises detecting a request from the user to grant program control ofthe particular program segment in exchange for authorization by the userto pay individually for such program control.
 13. The method accordingto claim 11 wherein determining whether to grant program control overthe particular program segment to the user further comprises detecting arequest from the user to adjust the limit on the number of times theuser is authorized to have program control over to particular programsegment from the server in exchange for authorization by the user to payfor such adjustment, and wherein maintaining the user authorizations toprogram segments on the server comprises adjusting the limit on thenumber of times the user is authorized to have program control over theparticular program segment from the server.
 14. The method according toclaim 1 wherein the particular program segment comprises one of a videoprogram and an audio program.
 15. A method for distributing program, themethod comprising: transmitting a first set of program segmentsaccording to a schedule of programming; storing a second set of programsegments on a server, at least one of the first set of program segmentshaving a counterpart in the second set of program segments; recordingthe number of times a user has previously been given program controlover program segments from the server and a limit on the number timesthe user is authorized to have program control over program segmentsfrom the server; detecting a request from the user for program controlof a particular program segment; and determining whether to grantprogram control over the particular program segment by comparing thenumber of times the user has previously been give program control overprogram segments from the server and the limit on the number of timesthe user is authorized to have program control over program segmentsfrom the server.
 16. The method according to claim 15 wherein the numberof times a user has previously been given program control over programsegments from the server and the number of times the user is authorizedto have program control over program segments from the server aredetermined according to access of program segments from the server. 17.The method according to claim 15 wherein the number of times a user haspreviously been given program control over program segments from theserver and the number of times he user is authorized to have programcontrol over program segments from the serve are determined according toviewing of program segments from the server.
 18. The method according toclaim 15 further comprising providing a plurality of program controlschemes for selection by the user, wherein the limit on the number oftimes the user is authorized to have program control over programsegments from the server is established in accordance with aprogram-control scheme selected by the user.
 19. The method according toclaim 18 further comprising changing the program-control scheme selectedby the user.
 20. The method according to claim 15 wherein the particularprogram segment comprises one of a video program and an audio program.21. A system for distributing programming, the system comprising: atransmitter configured to transmit a first set of program segmentsaccording to a program schedule; a server configured to store a secondset of program segments, at least one of the first set of programsegments having a counterpart in the second set of program segments; arecord of user authorizations to program segments on the server, whereinthe record of user authorizations includes: the number of times a userhas previously been given program control over a particular programsegment from the server; and a limit on the number of times the user isauthorized to have program control over the particular program segmentfrom the server; a detector configured to detect a request from the userfor program control of the particular program segment; and a controllerin communication with the transmitter, the server, the record of userauthorizations, and the detector, the controller being configured tooperate the transmitter, the server, and the detector to provide programcontrol of the particular program segment to the user in accordance withthe user authorizations.
 22. The system according to claim 21 whereinthe limit on the number of times the user is authorized to have programcontrol over the particular program segment from the server isdetermined individually for the particular program segment.